쓰레드(데몬 쓰레드) :: 자바일반[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

자바일반
[1]
등록일:2018-05-07 17:23:19 (0%)
작성자:
제목:쓰레드(데몬 쓰레드)

- 다른 일반 쓰레드의 작업을 돕는 보조적인 역할을 수행하는 쓰레드
- 보조역할을 수행하므로 일반 쓰레드가 모두 종료되면 데몬 쓰레드는 강제적으로 자동종료

 - 무한루프와 조건문을 이용해서 실행 후 대기하고 있다가, 특정 조건이 만족되면 작업을 수행하고 다시 대기하도록 작성
 - 일반 쓰레드의 작성방법과 실행방법이 같으며 다만 쓰레드를 생성한 다음 실행하기 전에 setDaemon(true)를 호출
 - 데몬 쓰레드가 생성한 쓰레드는 자동적으로 데몬 쓰레드가 된다

boolean isDaemon() : 쓰레드가 데몬 쓰레드인지 확인한다
                                    데몬 쓰레드이면 true를 반환한다

void setDaemon(boolean on) : 쓰레드를 데몬 쓰레드로 또는 사용자 쓰레드로 변경한다
                                                   매개변수 on의 값을 true로 지정하면 데몬 쓰레드가 된다
class ThreadEx10 implemints Runnable {
static boolean autoSave = false;

public static void main(String[] args) {
  Thread t = new Thread(new ThreadEx10());
  t.setDaemon(true);
  t.start();

  for(int i=1; i<=10; i++) {
   try {
    Thread.sleep(1000);
   } catch(InterruptedException e) {}
     System.out.println(i);

     if(i==5) autoSave = true;
  }
     System.out.println("프로그램을 종료합니다.");
}
}
public void run() {
  while(true) {
   try {
    Thread.sleep(3*1000);
   } catch(InterruptedException e) {}

    if(autoSave) {
     autoave();
   }
  }
}
public void autoSave() {
  System.out.println("작업파일이 자동 저장되었습니다.");
}
}

//결과
1
2
3
4
5
6
작업파일이 자동저장되었습니다.
7
8
작업파일이 자동저장되었습니다.
9
10
프로그램을 종료합니다.

- 3초마다 변수 autoSave의 값을 확인해서 그 값이 true이면, autoSave()를 호출하는 일을 무한히 반복하도록 했다
   만약 이 쓰레드를 데몬 쓰레드로 설정하지 않으면, 영원히 종료되지 않을 것 이다


[본문링크] 쓰레드(데몬 쓰레드)
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34604
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.